Fixed the bug where a nested GraphQLInputObjectType causing infinite get_arg_serializer recursive calls #132
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Sometimes a
GraphQLInputObjectType
could have a field that has/contains the same type of it, in short, it is nested.As
get_arg_serializer
is essentially a DFS and it did not handle this potential infinite recursive case.This PR addressed this by caching/returning the serializer that was already created instead of stepping into the rabbit hole.
In the unit test, I added a test case
test_nested_input_with_old_get_arg_serializer
to reproduce the error. Feel free to remove it if you think testing with the good case is sufficient enough.